home *** CD-ROM | disk | FTP | other *** search
- package org.apache.xalan.xpath;
-
- import java.util.Vector;
- import org.w3c.dom.Node;
- import org.xml.sax.SAXException;
-
- public class FuncSubstring extends Function {
- public XObject execute(XPath var1, XPathSupport var2, Node var3, int var4, Vector var5) throws SAXException {
- String var6 = ((XObject)var5.elementAt(0)).str();
- double var7 = ((XObject)var5.elementAt(1)).num();
- int var9 = var6.length();
- String var10;
- if (var9 <= 0) {
- var10 = "";
- } else {
- int var11;
- if (Double.isNaN(var7)) {
- var7 = (double)-1000000.0F;
- var11 = 0;
- } else {
- var7 = (double)Math.round(var7);
- var11 = var7 > (double)0.0F ? (int)var7 - 1 : 0;
- }
-
- if (var5.size() > 2) {
- double var12 = ((XObject)var5.elementAt(2)).num();
- int var14 = (int)((double)Math.round(var12) + var7) - 1;
- if (var14 < 0) {
- var14 = 0;
- } else if (var14 > var9) {
- var14 = var9;
- }
-
- var10 = var6.substring(var11, var14);
- } else {
- var10 = var6.substring(var11);
- }
- }
-
- return new XString(var10);
- }
- }
-